package service.Impl;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import qingke.bean.Page;
import qingke.mybatis.dao.ManagerMapper;
import qingke.mybatis.dao.StoreDescriptionMapper;
import qingke.mybatis.dao.StoreMapper;
import qingke.mybatis.pojo.Manager;
import qingke.mybatis.pojo.Store;
import qingke.mybatis.pojo.StoreDescription;
import service.StoreService;

@Service
public class StoreServiceImpl implements StoreService {

	@Autowired
	private StoreMapper storeMapper;

	@Autowired
	private ManagerMapper managerMapper;

	@Autowired
	private StoreDescriptionMapper storeDescriptionMapper;

	@Override
	public List<Store> getAllStore() {
		return this.storeMapper.selectAllStore();
	}

	@Override
	public List<Store> getBoutiques() {
		return this.storeMapper.selectBoutiques();
	}

	@Override
	public Integer countStore() {
		return this.storeMapper.countStore();
	}

	@Override
	public List<Store> storePaging(Page page) {
		return this.storeMapper.storePaging(page);
	}

	@Override
	public Integer countStoreBySelect(String name) {
		return this.storeMapper.countStoreBySelect(name);
	}

	@Override
	public List<Store> storePagingBySelect(Map<String, Object> map) {
		return this.storeMapper.storePagingBySelect(map);
	}

	@Override
	public StoreDescription getDescriptionById(Integer storeId) {
		return this.storeDescriptionMapper.getDescription(storeId);
	}

	@Override
	public Store getStoreById(Integer storeId) {
		return this.storeMapper.getStoreById(storeId);
	}

	@Override
	public List<Store> getMyStore(Integer userId) {
		List<Manager> managers = this.managerMapper.getMyStore(userId);
		List<Store> stores = new ArrayList<>();
		for (Manager manager : managers) {
			Store store = this.storeMapper.getStoreById(manager.getStoreId());
			stores.add(store);
		}
		return stores;
	}

	@Override
	public int changeStoreStatus(int statusid,int id) {
		Store store = new Store();
		store.setId(id);
		store.setStoreStatus(statusid);
		return this.storeMapper.changeStoreStatus(store);
	}

	@Override
	public int updateStore(Store store) {
		return this.storeMapper.updateStore(store);
	}

	@Override
	public int insert(Store store) {
		return this.storeMapper.insert(store);
	}

}
